{#
  jinjia2模板文件
  主/镜像服务器入站设置sql模板文件
#}
/*
  {{ target_name }}服务器入站设置，以sa用户或其他拥有系统管理员权限的用户登录执行

  !!!特别注意!!!

  将在{{ target_name}}数据库删除:

  1. 名为{{ cert_name }}的证书
  2. 名为{{ user}}的用户
  3. 名为{{ login}}的登录名

  !!!! 确认以上的改变不会造成问题并且填写自己的密码后再执行这个脚本 !!!!
*/

--
-- 入站设置(inbound)
--


USE [MASTER]

-- 
-- 删除{{ counter_name }}证书
IF EXISTS ( SELECT * FROM sys.certificates WHERE name='{{ cert_name}}')
  BEGIN
    PRINT '删除证书{{cert_name}}'
    DROP CERTIFICATE {{cert_name}}
  END
--
-- 删除{{counter_name}}用户
IF EXISTS (SELECT * FROM sys.sysusers WHERE name='{{ user}}')
BEGIN
  PRINT '删除用户{{ user}}'
  DROP USER {{ user}}
END 
--
-- 删除{{ counter_name}}登录
IF EXISTS (SELECT * FROM sys.syslogins WHERE name='{{ login}}')
BEGIN
  PRINT '删除登录{{login}}'
  DROP LOGIN {{login}};
END
--
-- 产生{{ counter_name }}登录
PRINT '产生{{counter_name}}服务器登录{{login}}'
CREATE LOGIN {{ login}}
    --
    -- !!!!填写自己的密码!!!!
    WITH PASSWORD = '{{ login_password }}';  
--
-- 产生{{ counter_name}}用户
PRINT '为登录{{ login}}产生{{ counter_name }}服务器用户{{ user}}'
CREATE USER {{ user}} FOR LOGIN {{ login}}
--
-- 产生{{ counter_name }}证书，授权{{ counter_name}}用户
PRINT '从{{ cert_dir_path}}\{{ cert_file_path}}产生证书{{ cert_name}},并作为{{ user}}的证书.'
CREATE CERTIFICATE {{ cert_name}}  
   AUTHORIZATION {{ user}}  
   FROM FILE = '{{ cert_dir_path}}\{{ cert_file_path}}'  
--
-- 授权{{counter_name}}登录连接镜像端点
PRINT '授权{{ login}}能够连接端点{{ endpoint_name}}.'
GRANT CONNECT ON ENDPOINT::{{ endpoint_name}} TO [{{ login }}];  
GO